package com.basic.business.service;

import com.basic.business.model.dto.SysMenuDto;
import com.basic.business.model.entity.SysMenu;
import com.basic.business.model.vo.SysMenuVo;
import com.github.pagehelper.*;

import java.util.List;

/**
 * 系统菜单表(SysMenu)表服务接口
 *
 * @author huage
 * @since 2021-07-20 14:33:45
 */
public interface SysMenuService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    SysMenuVo findById(Integer id);

    /**
     * 查询多条数据
     *
     * @param sysMenuDto 实例对象
     * @param pageNum    页数
     * @param pageSize   每页条数
     * @return 对象列表
     */
    PageInfo<SysMenuVo> findPageList(SysMenuDto sysMenuDto, int pageNum, int pageSize);

    /**
     * 新增数据
     *
     * @param sysMenuDto 实例对象
     * @return 实例对象
     */
    SysMenuVo add(SysMenuDto sysMenuDto);

    /**
     * 修改数据
     *
     * @param sysMenuDto 实例对象
     * @return 实例对象
     */
    SysMenuVo modify(SysMenuDto sysMenuDto);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean remove(Integer id);

    /**
     * 根据角色ids获取菜单
     * @param roleIds
     * @return
     */
    List<SysMenu> selectMenuByRoleIds(List<String> roleIds);
}
